package com.example.course.converter;

import com.example.course.bean.Directory;
import com.example.course.dto.DirectoryDTO;
import com.example.course.vo.DirectoryVO;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

/**
 * 课程目录转换器
 *
 * @author Jasmine-drs
 * @date 2025-04-22
 */
@Component
public class DirectoryConverter {

	/**
	 * 将DTO转换为实体类
	 *
	 * @param dto 目录DTO
	 * @return 目录实体
	 */
	public Directory toEntity(DirectoryDTO dto) {
		if (dto == null) {
			return null;
		}
		Directory entity = new Directory();
		BeanUtils.copyProperties(dto, entity);
		return entity;
	}

	/**
	 * 将实体类转换为VO
	 *
	 * @param entity 目录实体
	 * @return 目录VO
	 */
	public DirectoryVO toVO(Directory entity) {
		if (entity == null) {
			return null;
		}
		DirectoryVO vo = new DirectoryVO();
		BeanUtils.copyProperties(entity, vo);
		// 这里可以添加课程名称等额外信息
		return vo;
	}

	/**
	 * 批量转换实体类为VO
	 *
	 * @param entityList 实体列表
	 * @return VO列表
	 */
	public List<DirectoryVO> toVOList(List<Directory> entityList) {
		if (entityList == null) {
			return null;
		}
		List<DirectoryVO> voList = new ArrayList<>(entityList.size());
		for (Directory entity : entityList) {
			voList.add(toVO(entity));
		}
		return voList;
	}
} 